1. Technical Field
This disclosure relates generally to processors, and, more specifically, to branch prediction within processors.
2. Description of the Related Art
Modern processors frequently use branch prediction to improve the process of fetching instructions. By predicting the outcomes of branch instructions, processors can initiate the fetching of instructions that are dependent upon the outcomes of branch instructions before execution of those branch instructions completes. In this manner, processors can obtain higher instruction throughput.
To implement branch prediction, modern processors often include a dedicated branch prediction unit that is responsible for, among other things, predicting branch instruction outcomes. Branch prediction units typically use a variety of techniques to detect the direction of a branch (i.e., whether a branch is taken or not) and its target address (i.e., the address of the next instruction to be executed after a branch). As prediction techniques have become more advanced, branch prediction units have grown significantly in size and complexity. As a result, modern branch prediction units consume a significant amount of power and produce a significant amount of heat. The latency for predicting instructions has also increased.